package com.dc.designPattern._22_responsibilitychain.extend.extend2;

import cn.hutool.core.util.RandomUtil;
import com.google.common.collect.Lists;

import java.util.List;

/**
 * Description: 责任链模式_客户端
 *  古代女性有事请求过程
 *  故事背景：‘三从’ 是指 未嫁从父、既嫁从夫、夫死从子
 *      即：一位女性结婚之前听从于父亲，结婚之后听从于丈夫、丈夫死了还要听从于儿子
 *
 *  ：
 *
 * @author: gdc
 * @date: 2021/6/28
 * @version 1.0
 */
public class Client {

    public static void main(String[] args){

        // step 1 定义请示对象
        IHandler father = new Father();
        IHandler husband = new Husband();
        IHandler son = new Son();

        // step 2 设置请示顺序
        father.setNext(husband);
        husband.setNext(son);

        // step 3 创建请求对象，并请示处理
        List<IWomen> womenList = Lists.newArrayList();
        for (int i = 0; i < 10; i++) {
            womenList.add(new Women(RandomUtil.randomInt(1, 4), "我要出去逛街..."));
        }
        womenList.forEach(father::handleMessage);
    }
}
